﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using SistemaCenterQuimPost.Plantillas;

namespace SistemaCenterQuimPost.UI.PostCajero
{
    public partial class frmMenuCajero : SistemaCenterQuimPost.Plantillas.frmPlantillaPadre
    {
                
        //Valores de clase que almacenan el ancho y alto de ventana hijo, para los Cajeros.
        static int ancho = 904;
        static int alto = 702;

        public frmMenuCajero()
        {
            InitializeComponent();
        }

        private void frmMenuCajero_Load(object sender, EventArgs e)
        {

        }
        
        private void registrarVentaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmRegistrarVentas"))
            {
                frmRegistrarVentas unFrmRegistrarVentas = new frmRegistrarVentas();
                unFrmRegistrarVentas.MdiParent = this;
                unFrmRegistrarVentas.verificarCajaAbierta();
            }else
            {
                mandarAlFrenteFormulario("frmRegistrarVentas");
            }

        }

        private void aperturaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmAperturaCaja"))
            {
                frmAperturaCaja unFrmAperturaCaja = new frmAperturaCaja();
                unFrmAperturaCaja.MdiParent = this;
                unFrmAperturaCaja.obtenerDatosUltimaCaja();
            }else
            {
                mandarAlFrenteFormulario("frmAperturaCaja");
            }
            

        }

        private void gastosPagosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmRegistrarGastos"))
            {
                frmRegistrarGastos unFrmRegistrarGastos = new frmRegistrarGastos();
                unFrmRegistrarGastos.MdiParent = this;
                unFrmRegistrarGastos.verificarCajaAbierta();
            }else
            {
                mandarAlFrenteFormulario("frmRegistrarGastos");
            }

        }

        private void crearOrdenCompraToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmEmitirOrdenCompra"))
            {
                frmEmitirOrdenCompra unFrmEmitirOrdenCompra = new frmEmitirOrdenCompra();
                unFrmEmitirOrdenCompra.MdiParent = this;
                unFrmEmitirOrdenCompra.Show();
            }else
            {
                mandarAlFrenteFormulario("frmEmitirOrdenCompra");
            }
        }

        private void generarListaDePreciosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmGenerarListaPrecio"))
            {
                frmGenerarListaPrecio unFrmGenerarListaPrecio = new frmGenerarListaPrecio();
                unFrmGenerarListaPrecio.MdiParent = this;
                unFrmGenerarListaPrecio.Show();
            }else
            {
                mandarAlFrenteFormulario("frmGenerarListaPrecio");
            }
        }

        private void agregarDisueltoAGondolaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmAltaProductosDisueltos"))
            {
                frmAltaProductosDisueltos unFrmAltaProductosDisueltos = new frmAltaProductosDisueltos();
                unFrmAltaProductosDisueltos.MdiParent = this;
                unFrmAltaProductosDisueltos.Show();
            }
            else
            {
                mandarAlFrenteFormulario("frmAltaProductosDisueltos");
            }
        }
        
        private void gestionProductosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmGestionProductos"))
            {
                frmGestionProductos unFrmGestionProductos = new frmGestionProductos(ancho, alto);
                unFrmGestionProductos.MdiParent = this;
                unFrmGestionProductos.Show();
            }else
            {
                mandarAlFrenteFormulario("frmGestionProductos");
            }
        }

        private void cierreToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmCerrarCaja"))
            {
                frmCerrarCaja unFrmCerrarCaja = new frmCerrarCaja(ancho, alto);
                unFrmCerrarCaja.MdiParent = this;
                unFrmCerrarCaja.verificarCajaAbierta();
            }else
            {
                mandarAlFrenteFormulario("frmCerrarCaja");
            }
        }

        private void recepcionarProductosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmRecibirProductos"))
            {
                frmRecibirProductos unFrmRecibirProductos = new frmRecibirProductos(ancho, alto);
                unFrmRecibirProductos.MdiParent = this;
                unFrmRecibirProductos.Show();
            }
            else
            {
                mandarAlFrenteFormulario("frmRecibirProductos");
            }
        }

        private void vToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmVentasDia"))
            {
                frmVentasDia unFrmVentasDia = new frmVentasDia(ancho, alto);
                unFrmVentasDia.MdiParent = this;
                unFrmVentasDia.Show();
            }
            else
            {
                mandarAlFrenteFormulario("frmVentasDia");
            }
        }

        
        private void gestionDeProveedoresToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmGestionProveedoresC"))
            {
                frmGestionProveedoresC unFrmGestionProveedoresC = new frmGestionProveedoresC();
                unFrmGestionProveedoresC.MdiParent = this;
                unFrmGestionProveedoresC.Show();
            }
            else
            {
                mandarAlFrenteFormulario("frmGestionProveedoresC");
            }
        }

        private void actualizarPreciosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmActualizarPrecios"))
            {
                frmActualizarPrecios unFrmActualizarPrecios = new frmActualizarPrecios();
                unFrmActualizarPrecios.MdiParent = this;
                unFrmActualizarPrecios.Show();
            }else
            {
                mandarAlFrenteFormulario("frmActualizarPrecios");
            }
        }



        private void entradaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmTrasladosEntrada"))
            {
                frmTrasladosEntrada unFrmTrasladosEntrada = new frmTrasladosEntrada();
                unFrmTrasladosEntrada.setFechaActual(this.getFechaActual());
                unFrmTrasladosEntrada.setNombreCajero(this.getNombreUsuario());
                unFrmTrasladosEntrada.MdiParent = this;
                unFrmTrasladosEntrada.Show();
            }else
            {
                mandarAlFrenteFormulario("frmTrasladosEntrada");
            }
            
        }

        private void salidaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmTrasladosSalida"))
            {
                frmTrasladosSalida unFrmTrasladosSalida = new frmTrasladosSalida();
                unFrmTrasladosSalida.setFechaActual(this.getFechaActual());
                unFrmTrasladosSalida.setNombreCajero(this.getNombreUsuario());
                unFrmTrasladosSalida.MdiParent = this;
                unFrmTrasladosSalida.Show();
            }else
            {
                mandarAlFrenteFormulario("frmTrasladosSalida");
            }
        }

        private void gestionDeClientesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmGestionClientes"))
            {
                frmGestionClientes unFrmGestionClientes = new frmGestionClientes();
                unFrmGestionClientes.MdiParent = this;
                unFrmGestionClientes.Show();
            }
            else
            {
                mandarAlFrenteFormulario("frmGestionClientes");
            }
        }

        private void pagosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmRecibirPago"))
            {
                frmRecibirPago unFrmRecibirPago = new frmRecibirPago();
                unFrmRecibirPago.MdiParent = this;
                unFrmRecibirPago.verificarCajaAbierta();
            }
            else
            {
                mandarAlFrenteFormulario("frmRecibirPago");
            }
        }
        private void cargarArchivoDeProductosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmCargarRegistrosProductos"))
            {
                frmCargarRegistrosProductos unCargarRegistrosProductos = new frmCargarRegistrosProductos();

                unCargarRegistrosProductos.MdiParent = this;
                unCargarRegistrosProductos.Show();

            }

            else
            {
                mandarAlFrenteFormulario("frmCargarRegistrosProductos");
            }
        }

        private void verMovimientosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmMovimientosCliente"))
            {
                frmMovimientosCliente unFrmMovimientosCliente = new frmMovimientosCliente();
                if (unFrmMovimientosCliente.AccesoInternet())
                {
                    unFrmMovimientosCliente.MdiParent = this;
                    unFrmMovimientosCliente.Show();

                }
                else
                {
                    if (!unFrmMovimientosCliente.AccesoInternet())
                    {
                        MessageBox.Show("Esta operación necesita conexión a internet.", "INFORME", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    }
                }
            }

            else
            {
                mandarAlFrenteFormulario("frmMovimientosCliente");
            }
        }

        private void presupuestosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmPresupuestos"))
            {
                frmPresupuestos unFrmPresupuestos = new frmPresupuestos();
                unFrmPresupuestos.MdiParent = this;
                unFrmPresupuestos.Show();

            }

            else
            {
                mandarAlFrenteFormulario("frmPresupuestos");
            }
        }

        private void HabilitarDesactivarMenu(object sender, EventArgs e)  //Captura evento MdiChilActive. Activa o desactiva el menu, según existan o no ventanas hijas activas.
        {
           /* if (this.ActiveMdiChild == null)
            {
                menuStripCajero.Enabled = true;
            }
            else
            {
                menuStripCajero.Enabled = false;
            }*/
        }

        private void salirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        public void setTxtMenu() //establece el menu cuando un usuario ingresa.
        {
            this.Text = "Sistema CenterQuim Post - Sesión: " + this.getNombreUsuario() + " [Cajero]";
        }

        private bool noEstaAbierto(string unFormulario)  //verifica que el formulario ya no esté abierto, si está abierto devuelve false, sino true;
        {
            bool noabierto = true;

            foreach (Form unHijo in this.MdiChildren)
            {
                if (unHijo.Name == unFormulario)
                {
                    noabierto = false;
                }
            }

            return noabierto;
        }

        private void mandarAlFrenteFormulario(string unFormulario) //envia al frente a un formulario secundario no activo.
        {
            foreach (Form unHijo in this.MdiChildren)
            {
                if (unHijo.Name == unFormulario)
                {
                    unHijo.BringToFront();
                    break;
                }
            }
        }


        
    }
}
